package com.ly.heart.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ly.common.core.domain.ActCurrentTaskVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;


@Data
@ApiModel(value="采购订单物料返回Vo")
@JsonInclude(JsonInclude.Include.ALWAYS)
@Accessors(chain = true)
public class OrderVo {

    @ApiModelProperty ("采购订单id")
    private String id;

    @ApiModelProperty ("订单编号")
    private String orderNumber;

    @ApiModelProperty ("采购日期")
    @JsonFormat( pattern = "yyyy-MM-dd" )
    private Date applyTime;

    @ApiModelProperty ("供应商id")
    private String supplierId;

    @ApiModelProperty ("供应商编码")
    private String supplierCode;

    @ApiModelProperty ("供应商名称")
    private String supplierName;

    @ApiModelProperty ("行号")
    private String lineNumber;

    @ApiModelProperty ("源单Id")
    private String sourceId;

    @ApiModelProperty ("源单物料明细Id")
    private String sourceMaterialDetailId;

    @ApiModelProperty ("物料明细Id")
    private String materialDetailId;

    @ApiModelProperty ("物料Id")
    private String materialId;

    @ApiModelProperty ("物料编码")
    private String materialCode;

    @ApiModelProperty ("物料名称")
    private String materialName;

    @ApiModelProperty ( "规格型号" )
    private String model;

    @ApiModelProperty ("数量")
    private String number;

    @ApiModelProperty ("价税合计")
    private String totalTaxPrice = "0.0";

    @ApiModelProperty ("采购单位")
    private String purchaseUnit;

    @ApiModelProperty ("采购单位名称")
    private String purchaseUnitName;

    @ApiModelProperty ("交货日期")
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date deliveryDate;

    @ApiModelProperty ("净价")
    private String netAmount;

    @ApiModelProperty ("金额")
    private String amountMoney;

    @ApiModelProperty ("是否赠品")
    private Boolean isGiveaway;

    @ApiModelProperty ("批号")
    private String batchNum;

    @ApiModelProperty ("业务含税单价")
    private String businessTaxPrice;

    @ApiModelProperty ("业务单价")
    private String businessPrice;

    @ApiModelProperty ("需求组织")
    private String requireDeptName;

    @ApiModelProperty ("收料组织")
    private String receivingDeptName;

    @ApiModelProperty ("结算组织")
    private String settlementDeptName;

    @ApiModelProperty ("状态")
    private String state;

    @ApiModelProperty ("是否推送金蝶")
    private Integer isSend;

    @ApiModelProperty ("状态名称")
    private String stateName;

    @ApiModelProperty ("创建人")
    private String createBy;

    @ApiModelProperty ("创建时间")
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    private Date createTime;

    @ApiModelProperty ( "流程实例id" )
    private String instanceId;

    @ApiModelProperty ( "当下审批人" )
    private String approvedUser;

    @ApiModelProperty ( "审批内容" )
    private String remark;

    @ApiModelProperty ( "当前任务信息" )
    private ActCurrentTaskVo currentTask;


    /**
     * 以下为新增字段，需要单据计算
     */
    @ApiModelProperty("关联入库数量")
    private String totalInventoryNum;

    @ApiModelProperty("关联入库价税合计")
    private String totalInventoryTotalPriceTax;

    @ApiModelProperty("累计退货数量")
    private String totalReturnNum;

    @ApiModelProperty("累计退货价税合计")
    private String totalReturnTotalPriceTax;

    @ApiModelProperty("累计退货补货数量")
    private String totalReturnReplenishNum;

    @ApiModelProperty("累计退货补货价税合计")
    private String totalReturnReplenishTotalPriceTax;

    @ApiModelProperty("剩余入库数量")
    private String surplusInventoryNum;

    @ApiModelProperty("剩余入库价税合计")
    private String surplusInventoryTotalPriceTax;

    @ApiModelProperty("实际入库数量")
    private String actualInventoryNum;

    @ApiModelProperty ( "累计应付数量" )
    private String totalPayableNum;

    @ApiModelProperty ( "累计应付价税合计" )
    private String totalPayableTotalPriceTax;

    @ApiModelProperty ( "剩余应付数量" )
    private String surplusPayableNum;

    @ApiModelProperty ( "剩余应付价税合计" )
    private String surplusPayableTotalPriceTax;

    @ApiModelProperty("提前开票数量")
    private String advanceInvoicingNum;

    @ApiModelProperty("提前开票价税合计")
    private String advanceInvoicingTotalPriceTax;

//    @ApiModelProperty("开票数量")
//    private String invoicingNum;
//
    @ApiModelProperty("剩余提前开票数量")
    private String surplusAdvanceInvoicingNum;


    @ApiModelProperty("累计收料数量")
    private String totalReceivedNum;

    @ApiModelProperty("剩余收料数量")
    private String surplusReceivedNum;

    @ApiModelProperty("累计检验退料并扣款数量")
    private String totalCheckRefundAndReturnNum;

    @ApiModelProperty("不良品折让金额")
    private String badDiscountAmount;





}
